
using System;

namespace LightScribe
{
	public enum Error : int
	{
		/**
		* No error. 
		*/
		OK = 1, 
		
		/** 
		* Memory error.   
		*/
		MemoryError=0x21A, 
		
		/** 
		* An attempt to open a drive has been made with another drive already opened or this drive already in use.   
		*/
		DriveInUse=0x21E, 
		
		/** 
		* API error: attempted reentrant call to a busy object.  Raised when a COM object is already busy.  For example: calling back into a PrintSession from a progess callback.   
		*/
		ReentrantCall=0x223, 
		
		/** 
		* API Error: One of the supplied arguments is erroneous, possibly out of range.   
		*/
		BadArgument=0x226, 
		
		/** 
		* A change in drive description has indicated that the current drive is no longer valid - it may have been hotswapped for another.   
		*/
		DriveChanged=0x233, 
		
		/** 
		* An internal error occurred.   
		*/
		InternalError=0x22F, 
		
		/** 
		* External code for drive communications-related errors. This can occur when the drive does not communicate as expected or a particular request to the drive fails.  
		*/
		CommunicationsError=0x1080, 
		
		/** 
		* External code for hardware (drive) related errors.   
		*/
		HardwareError=0x1081, 
		
		/** 
		* Something appears to be wrong with the installation - this can be a missing rc file or the complete absence of update scripts. 
		*/
		InstallationError=0x23E, 
		
		/** 
		* The print engine was unable to find the resource file associated with this drive type. A LightScribe host software update may fix this.   
		*/
		UnsupportedDrive=0x22B, 
		
		/** 
		* This version of the software stack cannot use this drive.  A LightScribe host software update may fix this.   
		*/
		UnsupportedDriveCommunications=0x239, 
		
		/** 
		* The resource file associated with this drive type is corrupt.  A LightScribe host software update may fix this.   
		*/
		CorruptResourceFile=0x22E, 
		
		/** 
		* The current version of the LightScribe host software is older than the drive's resource file.  A LightScribe host software update may fix this.   
		*/
		UpdateRequired=0x234, 
		
		/** 
		* The drive indicates that no media is present. 
		*/
		NoMedia=0x1012, 
		
		/** 
		* The drive indicates that non-LightScribe media is present. 
		*/
		NonLightScribeMedia=0x23d, 
		
		/** 
		* LightScribe discs contain media information encoded in the middle of the disc. If it cannot be read, this error gets raised.  The cause could be a dirty disc or a disc with the wrong side up.   
		*/
		UnableToReadMediaParams=0x208, 
		
		/** 
		* A media identification parameter value is unsupported.  A LightScribe host software update may fix this.   
		*/
		UnsupportedMediaId=0x237, 
		
		/** 
		* A media identification parameter is invalid. A low laser power exceeds the corresponding high laser power or is zero. The low write speed value exceeds the high write speed value.  A LightScribe host software update will not fix this problem.   
		*/
		InvalidMediaParams=0x209, 
		
		/** 
		* The drive does not support the media type. This error is returned if the drive does not have the proper laser for marking the media, or the drive's laser power or spindle speed limits do not support the media's speed/power curve.  A LightScribe host software update will not fix this problem.   
		*/
		MediaNotSupportedByDrive=0x220, 
		
		/** 
		* The media is not oriented such that labeling can proceed.  This typically means that the disc needs to be flipped so the label side is exposed to the labeling laser.   
		*/
		InvalidMediaOrientation=0x205, 
		
		/** 
		* The drive resource file does not support this media type.  A LightScribe host software update may fix this.   
		*/
		UnsupportedMedia=0x22C, 
		
		/** 
		* The drive resource file does not support this media type, and the file is no longer being updated.  A LightScribe host software update will not fix this problem.   
		*/
		UnsupportedMediaNoUpdate=0x23b, 
		
		/** 
		* The drive resource file specifies that the current media will never work with this drive.  A LightScribe host software update will not fix this problem.   
		*/
		IncompatibleMedia=0x23c, 
		
		/** 
		* The print preview command failed as the output file could not be created.   
		*/
		PrintPreviewFileError=0x229, 
		
		/** 
		* Failed to print to a file.  The usual causes: access rights, disc space, etc apply.   
		*/
		PrintFileError=0x210, 
		
		/** 
		* API Error: unsupported source image format. Only those explictly supported in the enumeration of valid types are allowed.   
		*/
		UnsupportedSource=0x211, 
		
		/** 
		* API error: invalid source image format.  This can include the resolution being unset or zero.   
		*/
		InvalidSource=0x212, 
		
		/** 
		* QueryCancel() requested a cancel; this message indicates that it has taken effect.   
		*/
		Aborted=0x219, 
		
		/** 
		*  The progress callback threw an exception, which triggered an emergency abort of the print process.   
		*/
		CallbackException=0x21B, 
		
		/** 
		* API Error: unsupported preview image format. Only those explictly supported in the enumeration of valid types are allowed.   
		*/
		UnsupportedPreview=0x21D, 
		
		/** 
		* The specified print quality is not supported by this drive and media type.   
		*/
		UnsupportedPrintQuality=0x22D, 
		
		/** 
		* The drive tray operation was blocked because the currently selected drive's tray is locked.   
		*/
		DriveTrayLocked=0x22A, 
		
		/** 
		* Not an error. This is a marker used to scope LSCAPI errors 
		*/
		end_of_enum_marker=0x10B5, 
		
		LS_ENDOFERRORS=-1
	}
}
